package com.cskaoyan._02objectandclass._01define;

/**
 * @description:
 * @author: 景天
 * @date: 2023/2/2 17:20
 **/
/*
Java 是面向对象的编程语言，独立的个体就是对象，对象就是面向对象程序设计的核心。
对象之间相互协作，共同实现程序的功能。
现实中存在的个体，Ta们具有特定的属性和特定的行为，
程序世界中的对象也类似，具有以下特点：
举例:
张三 养了一只狗 萨摩耶 1岁 爱吃肉 黄色
李四 养了一只狗 柴犬 2岁 爱吃骨头 黑色
王五 养了一只狗 泰迪 3岁 爱吃罐头 白色

- 属性：个体的状态信息（数据）
- 行为：个体能够做什么（操作）

此时我们把这3只狗(具体的概念)的共有的属性, 行为提取出来, 用类(抽象的概念)去描述它
在Java中把创建对象的"模板"，称之为类（class）。

类与对象的关系
同一个类描述相同类型不同对象的共有的属性, 行为
同一个类创建出不同的对象


定义类
    1.类本身
    2.类中结构
        1)成员变量: 描述不同对象的共有属性
        2)成员方法: 描述不同对象的共有行为

定义一个类
    语法: 权限修饰符 class 类名{
            类体
         }
    解释:
        权限修饰符可以是public, 也可以不写
        Demo / A/ B这3个类是什么关系??--->同包关系
        一个java文件里只能有1个public的class
        命名要求:大驼峰

类中结构(类成员):
    成员变量:
        语法: (权限修饰符先不写)数据类型 变量名;
        定义在哪?--->定义成员位置
        什么是成员位置?---> 类体中,方法外部,局部位置之外
        解释: 数据类型可以是基本数据类型,也可以是引用数据类型
              命名要求: 小驼峰
        注意:
            成员变量作用范围，在整个类体中生效，在整个类中的成员方法中都可以访问它！

    成员方法:
        描述的是不同对象的共有行为
        语法:权限修饰符 方法返回值类型 方法名(形参列表){ 方法体 }
        注意:
            1.修饰符里不含static
            2.修饰符先跟之前保持一致先用public(不要加static)
            3.其余的特性特点跟之前带static的方法是一致的


 */
public class Demo {
    public static void main(String[] args) {

    }
}

class A{

}

class B{

}

//定义一个学生类
// 类定义
class Student{
    // 成员变量
    // 学号
    int stuID;
    // 姓名
    String name;
    // 分数
    int score;

    // 成员方法
    public void study() {
        System.out.println("热爱学习");
    }
}